package com.tongcao.cn.dfire.utils;

import com.tongcao.cn.dfire.result.Result;
import com.tongcao.cn.dfire.result.ResultSupport;

/**
 * @Author:tongcao
 * @Date:2018/12/27 20:32
 * Description:
 */
public class ResultUtil {


    //返回码： 0：失败 1 ：成功
    public static final String FAIL_CODE = "0";
    public static final String SUCCESS_CODE = "1";

    /**
     * 请求是否成功
     *
     * @param result 返回结果
     * @return 成功：true 失败：false
     */
    public static boolean isResultSuccess(Result result) {
        return null != result && result.isSuccess();
    }

    /**
     * 返回数据是否为空
     *
     * @param result 返回结果
     * @return 非空：true 空：false
     */
    public static boolean isModelNotNull(Result result) {
        return isResultSuccess(result) && null != result.getModel();
    }

    /**
     * 默认的Result
     *
     * @return Result
     */
    public static Result defaultResult() {
        return new ResultSupport();
    }

    /**
     * 成功的返回结果
     *
     * @param model 返回内容
     * @return Result
     */
    public static Result successResult(Object model) {
        Result result = defaultResult();
        result.setModel(model);
        return result;
    }

    /**
     * 失败的返回结果
     *
     * @param errorMessage 错误信息
     * @return Result
     */
    public static Result failResult(String errorMessage) {
        return failResult(FAIL_CODE, errorMessage);
    }

    /**
     * 失败的返回结果
     *
     * @param errorCode    错误返回码
     * @param errorMessage 错误信息
     * @return Result
     */
    public static Result failResult(String errorCode, String errorMessage) {
        Result result = defaultResult();
        result.setSuccess(false);
        result.setResultCode(errorCode);
        result.setMessage(errorMessage);
        return result;
    }
}
